package com.crm.system.service.callCenter;


import com.crm.common.model.DhPageInfo;
import com.crm.model.entity.callCenter.CallForm;
import com.crm.model.qo.callCenter.CallFormQO;
import com.crm.model.qo.callCenter.CallMarkupQO;
import com.crm.model.vo.callCenter.CallFormDetailsVO;
import com.crm.model.vo.callCenter.CallFormVO;
import com.crm.model.vo.callCenter.CallReportVO;

import java.util.List;
import java.util.Map;

/**
 * 呼叫中心-呼叫表单
 * @Author renshaorong
 * @Date 2021/3/31
 */
public interface CallFormService {

    /**
     * 呼叫表单列表
     * @Author renshaorong
     * @Date 2021/4/1
     * @param pageIndex 页码
     * @param pageSize 分页大小
     * @param sortName 拍序列名字（暂时只支持创建时间排序）
     * @param sortOrder 排序规则(asc/desc)
     * @param callFormQO 查询条件
     * @return
     */
    DhPageInfo<CallFormVO> selectCallFormList(Integer pageIndex, Integer pageSize, CallFormQO callFormQO, String sortName, String sortOrder);


    /**
     * 根据联系人id获取信息
     * @param contactId
     * @return
     */
    CallFormDetailsVO selectCallFormDetails(String contactId, String formId);


    /**
     * 折线图（接听、未接听、接听总数三条折线）
     * @Author renshaorong
     * @Date 2021/4/16
     * @param dateUnit 上月/本周/本月/本季度/本年
     * @return
     */
    Map<String,Object> getPolyLineByAnswers(Integer dateUnit);

    String getSecretUrl(String objectName);

    /**
     * 呼叫表单详情列表
     * @param pageIndex 页码
     * @param pageSize 分页大小
     * @param sortName 拍序列名字（暂时只支持创建时间排序）
     * @param sortOrder 排序规则(asc/desc)
     * @param callFormQO 查询条件
     * @return
     */
    DhPageInfo<CallFormVO> selectCallDetailsList(Integer pageIndex, Integer pageSize, CallFormQO callFormQO, String sortName, String sortOrder);


    /**
     * @Description: 修改呼叫表单的标签
     * @Author: yuanyunfeng
     * @Date: 2021/4/16 10:31
     * @Param: formId 表单id
     * @Param: label 标签
     * @Return:
     */
    boolean updateLabel(String formId, Integer label);

    /**
     * 饼状图（30s/60s/90s/大于90s）
     * @Author renshaorong
     * @Date 2021/4/16
     * @param dateUnit 上月/本周/本月/本季度/本年
     * @return
     */
    List<Map> getMinutePieData(Integer dateUnit);
    /**
     * 统计表（标签：1 意向电话 2 无意向电话 3 未标记电话 4 抽取标签电话 5 产生话术电话 6 恶意回复电话）
     * @Author renshaorong
     * @Date 2021/4/16
     * @param dateUnit
     * @return
     */
    List<CallReportVO> selectcallReportVOList(Integer dateUnit);


    /**
     * @Description: 呼叫表单标记
     * @Param: [markupQO]
     * @Return: boolean
     * @Author: lixq-f
     * @Date: 2021/5/28
    **/
    boolean callMarkup(CallMarkupQO markupQO);


    /**
     * @Description: 根据表单ID获取表单记录
     * @Param: [formId]
     * @Return: com.crm.model.entity.callCenter.CallForm
     * @Author: lixq-f
     * @Date: 2021/5/28
    **/
    CallForm selectCallFormByFormId(String formId);



    /**
     * @Description: 修改呼叫表单联系人
     * @Param: [callFormQO]
     * @Return: boolean
     * @Author: lixq-f
     * @Date: 2021/5/31
    **/
    boolean updateContact(CallFormQO callFormQO);


}
